Embedded systems can be attacked in many different ways. Attacks can be logical (e.g. “fuzzing”, cryptanalysis, abuse of weaknesses or flaws of poorly designed APIs) and/or physical (e.g. side-channel or fault injection attacks). Attacks can target different layers (e.g. hardware, firmware, operating system, applicative layers, etc). Attacks can be performed very fast over time. A single weakness can jeopardize the security of an entire system.
In existing embedded systems, security supervision can be performed in many different ways. Security supervision can be performed by using a coprocessor. Alternatively, security supervision can use time sharing of a given processor (i.e. in an interleaved way with a current execution thread). In both cases, the latency associated with the detection of an attack and the further triggering of an alarm can constitute a security weakness which can be further leveraged by attackers. Also, the security supervision mechanisms themselves can be attacked.
Existing approaches to secure embedded systems in a fast and reactive way are generally insufficient. For example, US20070162964 entitled “Embedded system insuring security and integrity, and method of increasing security thereof” presents limitations.
There is a need for advanced methods and systems of securing embedded systems.